package com.company.笔试.调整数组顺序;

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     *局限性,不能保证相对顺序
     * @param array int整型一维数组 
     * @return int整型一维数组
     */
    public int[] reOrderArray (int[] array) {
        // write code here
        if(array.length == 0 || array.length==1) return array;
        int left = 0;
        int right = array.length-1;
        while(left<right){
            if(array[left] % 2 == 0){ //左边是偶数  换到右边技术位置
                int tmpright = right;//从右往左遍历的索引
                while(left<tmpright){//在右边找一个奇数位置交换
                    if(array[tmpright] % 2 != 0){
                        int tmp1 = array[tmpright];
                        array[tmpright] = array[left];
                        array[left] = tmp1;
                        left++;
                        break;
                    }
                    tmpright--;
                }
            }else{
                left++;
            }
            if(array[right] % 2 != 0){//右边是奇数数  换到左边
                 int tmpleft = left;//从左往右遍历的索引
                 while(left<tmpleft){//在左边找到一个偶数位置交换
                    if(array[tmpleft] % 2 == 0){//在左边找到一个偶数位置
                        int tmp2 = array[tmpleft];
                        array[tmpleft] = array[right];
                        array[right] = tmp2;
                        right--;
                        break;
                    }
                    tmpleft++;
                }
            }else{
                right--;
            }
        }
        return array;
        

    }
}